; Generated by gcc 2.95.2 19991024 (release) for ARM/RISC OS
__r0	RN	0
__a1	RN	0
__a2	RN	1
__a3	RN	2
__a4	RN	3
__v1	RN	4
__v2	RN	5
__v3	RN	6
__v4	RN	7
__v5	RN	8
__v6	RN	9
__sl	RN	10
__fp	RN	11
__ip	RN	12
__sp	RN	13
__lr	RN	14
__pc	RN	15
__f0	FN	0
__f1	FN	1
__f2	FN	2
__f3	FN	3
__f4	FN	4
__f5	FN	5
__f6	FN	6
__f7	FN	7
	AREA |C$$code1|, CODE, READONLY
|gcc2_compiled.|
	ALIGN
	EXPORT	|InitMP3|
|InitMP3|
	; args = 0, pretend = 0, frame = 0, alloca = 0
	; frame_needed = 1, anonymous_args = 0
	; nonlocal_label = 0, nonlocal_goto = 0
	mov	__ip, __sp
	stmfd	__sp!, {__v1, __v2, __fp, __ip, __lr, __pc}
	sub	__fp, __ip, #4
	cmp	__sp, __sl
	bllt	|__rt_stkovf_split_small|
	mov	__v1, __a1
	ldr	__a3, |L..3|
	mov	__a2, #0
	bl	|memset|
	mov	__ip, #0
	str	__ip, [__v1, #40]
	str	__ip, [__v1, #12]
	str	__ip, [__v1, #8]
	str	__ip, [__v1, #16]
	str	__ip, [__v1, #20]
	str	__ip, [__v1, #24]
	str	__ip, [__v1, #28]
	str	__ip, [__v1, #32]
	str	__ip, [__v1, #44]
	str	__ip, [__v1, #48]
	mvn	__a3, #0
	str	__a3, [__v1, #52]
	str	__ip, [__v1, #36]
	str	__ip, [__v1, #4]
	str	__ip, [__v1, #0]
	str	__a3, [__v1, #68]
	ldr	__a3, |L..3|+4
	ldr	__a1, |L..3|+8
	str	__ip, [__v1, __a3]
	ldr	__a3, |L..3|+12
	add	__ip, __v1, #660
	str	__ip, [__a3, #0]
	ldr	__ip, |L..3|+16
	mov	__v2, #1
	str	__v2, [__v1, __ip]
	bl	|make_decode_tables|
	mov	__a1, #32
	bl	|init_layer3|
	bl	|init_layer2|
	mov	__a1, __v2
	ldmea	__fp, {__v1, __v2, __fp, __sp, __pc}
|L..4|
	ALIGN
|L..3|
	DCD	31912
	DCD	23200
	DCD	32767
	DCD	|wordpointer|
	DCD	31908
	ALIGN
	EXPORT	|ExitMP3|
|ExitMP3|
	; args = 0, pretend = 0, frame = 0, alloca = 0
	; frame_needed = 1, anonymous_args = 0
	; nonlocal_label = 0, nonlocal_goto = 0
	mov	__ip, __sp
	stmfd	__sp!, {__v1, __fp, __ip, __lr, __pc}
	sub	__fp, __ip, #4
	cmp	__sp, __sl
	bllt	|__rt_stkovf_split_small|
	ldr	__v1, [__a1, #4]
	cmp	__v1, #0
	beq	|L..7|
|L..8|
	ldr	__a1, [__v1, #0]
	bl	|free|
	mov	__a1, __v1
	ldr	__v1, [__v1, #12]
	bl	|free|
	cmp	__v1, #0
	bne	|L..8|
|L..7|
	ldmea	__fp, {__v1, __fp, __sp, __pc}
	ALIGN
|LC..0|
	DCB &4f, &75, &74, &20
	DCB &6f, &66, &20, &6d
	DCB &65, &6d, &6f, &72
	DCB &79, &21, &0a, &00
	ALIGN
|addbuf|
	KEEP |addbuf|
	; args = 0, pretend = 0, frame = 0, alloca = 0
	; frame_needed = 1, anonymous_args = 0
	; nonlocal_label = 0, nonlocal_goto = 0
	mov	__ip, __sp
	stmfd	__sp!, {__v1, __v2, __v3, __v4, __v5, __fp, __ip, __lr, __pc}
	sub	__fp, __ip, #4
	cmp	__sp, __sl
	bllt	|__rt_stkovf_split_small|
	mov	__v3, __a1
	mov	__a1, #20
	mov	__v5, __a2
	mov	__v4, __a3
	bl	|malloc|
	subs	__v2, __a1, #0
	bne	|L..11|
	ldr	__ip, |L..16|
	ldr	__a2, |L..16|+4
	ldr	__a1, [__ip, #0]
	bl	|fprintf|
	mov	__a1, #0
	ldmea	__fp, {__v1, __v2, __v3, __v4, __v5, __fp, __sp, __pc}
|L..11|
	mov	__a1, __v4
	bl	|malloc|
	mov	__v1, __a1
	cmp	__v1, #0
	str	__v1, [__v2, #0]
	bne	|L..12|
	mov	__a1, __v2
	bl	|free|
	mov	__a1, #0
	ldmea	__fp, {__v1, __v2, __v3, __v4, __v5, __fp, __sp, __pc}
|L..12|
	mov	__a1, __v1
	mov	__a2, __v5
	str	__v4, [__v2, #4]
	mov	__a3, __v4
	bl	|memcpy|
	mov	__ip, #0
	str	__ip, [__v2, #12]
	ldr	__a3, [__v3, #0]
	str	__ip, [__v2, #8]
	str	__a3, [__v2, #16]
	ldr	__ip, [__v3, #4]
	cmp	__ip, #0
	streq	__v2, [__v3, #4]
|L..13|
	strne	__v2, [__a3, #12]
|L..14|
	ldr	__ip, [__v3, #36]
	mov	__a1, __v2
	str	__v2, [__v3, #0]
	add	__ip, __ip, __v4
	str	__ip, [__v3, #36]
	ldmea	__fp, {__v1, __v2, __v3, __v4, __v5, __fp, __sp, __pc}
|L..17|
	ALIGN
|L..16|
	DCD	|__stderr|
	DCD	|LC..0|
	ALIGN
	EXPORT	|remove_buf|
|remove_buf|
	; args = 0, pretend = 0, frame = 0, alloca = 0
	; frame_needed = 1, anonymous_args = 0
	; nonlocal_label = 0, nonlocal_goto = 0
	mov	__ip, __sp
	stmfd	__sp!, {__v1, __fp, __ip, __lr, __pc}
	sub	__fp, __ip, #4
	cmp	__sp, __sl
	bllt	|__rt_stkovf_split_small|
	ldr	__v1, [__a1, #4]
	ldr	__a3, [__v1, #12]
	cmp	__a3, #0
	str	__a3, [__a1, #4]
	movne	__ip, #0
	strne	__ip, [__a3, #16]
|L..19|
	streq	__a3, [__a1, #0]
	streq	__a3, [__a1, #4]
|L..20|
	ldr	__a1, [__v1, #0]
	bl	|free|
	mov	__a1, __v1
	ldmea	__fp, {__v1, __fp, __sp, __lr}
	b	|free|
	ALIGN
|LC..1|
	DCB &46, &61, &74, &61
	DCB &6c, &20, &65, &72
	DCB &72, &6f, &72, &21
	DCB &20, &74, &72, &69
	DCB &65, &64, &20, &74
	DCB &6f, &20, &72, &65
	DCB &61, &64, &20, &70
	DCB &61, &73, &74, &20
	DCB &6d, &70, &20, &62
	DCB &75, &66, &66, &65
	DCB &72, &0a, &00
	ALIGN
|read_buf_byte|
	KEEP |read_buf_byte|
	; args = 0, pretend = 0, frame = 0, alloca = 0
	; frame_needed = 1, anonymous_args = 0
	; nonlocal_label = 0, nonlocal_goto = 0
	mov	__ip, __sp
	stmfd	__sp!, {__v1, __fp, __ip, __lr, __pc}
	sub	__fp, __ip, #4
	cmp	__sp, __sl
	bllt	|__rt_stkovf_split_small|
	mov	__v1, __a1
	ldr	__ip, [__v1, #4]
	b	|L..25|
|L..24|
	mov	__a1, __v1
	bl	|remove_buf|
	ldr	__ip, [__v1, #4]
	cmp	__ip, #0
	bne	|L..25|
	ldr	__ip, |L..27|
	ldr	__a2, |L..27|+4
	ldr	__a1, [__ip, #0]
	bl	|fprintf|
	mov	__a1, #1
	bl	|exit|
|L..25|
	ldr	__a2, [__ip, #8]
	ldr	__ip, [__ip, #4]
	cmp	__a2, __ip
	bge	|L..24|
	ldr	__a4, [__v1, #4]
	ldr	__ip, [__v1, #36]
	ldr	__a3, [__a4, #0]
	ldrb	__a1, [__a3, __a2]	; zero_extendqisi2
	sub	__ip, __ip, #1
	str	__ip, [__v1, #36]
	ldr	__ip, [__a4, #8]
	add	__ip, __ip, #1
	str	__ip, [__a4, #8]
	ldmea	__fp, {__v1, __fp, __sp, __pc}
|L..28|
	ALIGN
|L..27|
	DCD	|__stderr|
	DCD	|LC..1|
	ALIGN
|read_head|
	KEEP |read_head|
	; args = 0, pretend = 0, frame = 0, alloca = 0
	; frame_needed = 1, anonymous_args = 0
	; nonlocal_label = 0, nonlocal_goto = 0
	mov	__ip, __sp
	stmfd	__sp!, {__v1, __v2, __fp, __ip, __lr, __pc}
	sub	__fp, __ip, #4
	cmp	__sp, __sl
	bllt	|__rt_stkovf_split_small|
	mov	__v1, __a1
	bl	|read_buf_byte|
	mov	__v2, __a1, asl #8
	mov	__a1, __v1
	bl	|read_buf_byte|
	orr	__v2, __v2, __a1
	mov	__v2, __v2, asl #8
	mov	__a1, __v1
	bl	|read_buf_byte|
	orr	__v2, __v2, __a1
	mov	__v2, __v2, asl #8
	mov	__a1, __v1
	bl	|read_buf_byte|
	ldr	__ip, |L..30|
	orr	__v2, __v2, __a1
	str	__v2, [__v1, __ip]
	ldmea	__fp, {__v1, __v2, __fp, __sp, __pc}
|L..31|
	ALIGN
|L..30|
	DCD	23196
	ALIGN
	EXPORT	|copy_mp|
|copy_mp|
	; args = 0, pretend = 0, frame = 0, alloca = 0
	; frame_needed = 1, anonymous_args = 0
	; nonlocal_label = 0, nonlocal_goto = 0
	mov	__ip, __sp
	stmfd	__sp!, {__v1, __v2, __v3, __v4, __v5, __fp, __ip, __lr, __pc}
	sub	__fp, __ip, #4
	cmp	__sp, __sl
	bllt	|__rt_stkovf_split_small|
	mov	__v4, #0
	mov	__v3, __a2
	cmp	__v4, __v3
	mov	__v2, __a1
	mov	__v5, __a3
	bge	|L..34|
|L..35|
	ldr	__ip, [__v2, #4]
	ldr	__a4, [__ip, #8]
	add	__a1, __v5, __v4
	add	__a2, __ip, #4
	ldmia	__a2, {__a2, __a3}
	sub	__a3, __a2, __a3
	rsb	__v1, __v4, __v3
	ldr	__a2, [__ip, #0]
	cmp	__v1, __a3
	movge	__v1, __a3
	add	__a2, __a2, __a4
	mov	__a3, __v1
	bl	|memcpy|
	ldr	__a3, [__v2, #4]
	ldr	__ip, [__a3, #8]
	add	__ip, __ip, __v1
	str	__ip, [__a3, #8]
	ldr	__ip, [__v2, #36]
	rsb	__ip, __v1, __ip
	str	__ip, [__v2, #36]
	ldr	__ip, [__v2, #4]
	ldr	__a3, [__ip, #8]
	ldr	__ip, [__ip, #4]
	add	__v4, __v4, __v1
	cmp	__a3, __ip
	bne	|L..33|
	mov	__a1, __v2
	bl	|remove_buf|
|L..33|
	cmp	__v4, __v3
	blt	|L..35|
|L..34|
	ldmea	__fp, {__v1, __v2, __v3, __v4, __v5, __fp, __sp, __pc}
	ALIGN
	EXPORT	|check_vbr_header|
|check_vbr_header|
	; args = 0, pretend = 0, frame = 176, alloca = 0
	; frame_needed = 1, anonymous_args = 0
	; nonlocal_label = 0, nonlocal_goto = 0
	mov	__ip, __sp
	stmfd	__sp!, {__v1, __fp, __ip, __lr, __pc}
	sub	__fp, __ip, #4
	cmp	__sp, __sl
	bllt	|__rt_stkovf_split_small|
	sub	__sp, __sp, #176
	mov	__lr, #0
	mov	__v1, __a1
	ldr	__a3, [__v1, #4]
	cmp	__lr, __a2
	ldr	__a4, [__a3, #8]
	bge	|L..42|
	b	|L..65|
|L..47|
	ldr	__a3, [__a3, #12]
	cmp	__a3, #0
	ldr	__a4, [__a3, #8]
	beq	|L..63|
|L..65|
	ldr	__ip, [__a3, #4]
	cmp	__a4, __ip
	bge	|L..47|
	add	__a4, __a4, #1
	add	__lr, __lr, #1
	cmp	__lr, __a2
	blt	|L..65|
|L..42|
	mov	__lr, #0
	b	|L..66|
|L..57|
	ldr	__a3, [__a3, #12]
	cmp	__a3, #0
	ldr	__a4, [__a3, #8]
	beq	|L..63|
|L..66|
	ldr	__ip, [__a3, #4]
	cmp	__a4, __ip
	bge	|L..57|
	ldr	__ip, [__a3, #0]
	ldrb	__ip, [__ip, __a4]
	add	__a4, __a4, #1
	strb	__ip, [__sp, __lr]
	add	__lr, __lr, #1
	cmp	__lr, #47
	ble	|L..66|
	add	__a1, __sp, #48
	mov	__a2, __sp
	bl	|GetVbrTag|
	cmp	__a1, #0
	str	__a1, [__v1, #8]
	bne	|L..61|
	ldmea	__fp, {__v1, __fp, __sp, __pc}
|L..63|
	mvn	__a1, #0
	ldmea	__fp, {__v1, __fp, __sp, __pc}
|L..61|
	ldr	__ip, [__sp, #60]
	ldr	__a1, [__sp, #172]
	str	__ip, [__v1, #12]
	ldmea	__fp, {__v1, __fp, __sp, __pc}
	ALIGN
	EXPORT	|sync_buffer|
|sync_buffer|
	; args = 0, pretend = 0, frame = 20, alloca = 0
	; frame_needed = 1, anonymous_args = 0
	; nonlocal_label = 0, nonlocal_goto = 0
	mov	__ip, __sp
	stmfd	__sp!, {__v1, __v2, __v3, __v4, __v5, __v6, __fp, __ip, __lr, __pc}
	sub	__fp, __ip, #4
	cmp	__sp, __sl
	bllt	|__rt_stkovf_split_small|
	sub	__sp, __sp, #20
	mov	__v5, __a1
	mov	__a1, __sp
	str	__a2, [__sp, #16]
	mov	__a2, #0
	mov	__a3, #16
	bl	|memset|
	ldr	__ip, [__v5, #36]
	mov	__v6, #0
	ldr	__v2, [__v5, #4]
	cmp	__v6, __ip
	ldr	__v4, [__v2, #8]
	bge	|L..69|
|L..71|
	ldr	__ip, [__sp, #4]
	str	__ip, [__sp, #0]
	ldr	__ip, [__sp, #8]
	str	__ip, [__sp, #4]
	ldr	__ip, [__sp, #12]
	str	__ip, [__sp, #8]
	b	|L..72|
|L..74|
	ldr	__v2, [__v2, #12]
	cmp	__v2, #0
	ldr	__v4, [__v2, #8]
	mvneq	__a1, #0
	ldmeqea	__fp, {__v1, __v2, __v3, __v4, __v5, __v6, __fp, __sp, __pc}
|L..72|
	ldr	__ip, [__v2, #4]
	cmp	__v4, __ip
	bge	|L..74|
	ldr	__ip, [__v2, #0]
	cmp	__v6, #2
	ldrb	__a4, [__ip, __v4]	; zero_extendqisi2
	add	__v4, __v4, #1
	str	__a4, [__sp, #12]
	ble	|L..70|
	ldr	__v1, [__sp, #0]
	add	__v3, __v5, #60
	ldr	__a2, [__v3, #24]
	ldr	__ip, [__sp, #4]
	ldr	__a3, [__sp, #8]
	orr	__v1, __ip, __v1, asl #8
	orr	__v1, __a3, __v1, asl #8
	orr	__v1, __a4, __v1, asl #8
	mov	__a1, __v1
	bl	|head_check|
	ldr	__ip, [__sp, #16]
	cmp	__a1, #0
	cmpne	__ip, #0
	beq	|L..78|
	tst	__v1, #1048576
	movne	__a4, __v1, lsr #19
	eorne	__a4, __a4, #1
	andne	__a4, __a4, #1
	movne	__a2, #0
|L..79|
	moveq	__a2, #1
	moveq	__a4, __a2
|L..80|
	mov	__ip, __v1, lsr #6
	and	__ip, __ip, #3
	cmp	__ip, #3
	movne	__lr, #2
	moveq	__lr, #1
	cmp	__a2, #0
	movne	__ip, __v1, lsr #10
	andne	__ip, __ip, #3
	addne	__a3, __ip, #6
|L..83|
	moveq	__ip, __v1, lsr #10
	andeq	__ip, __ip, #3
	addeq	__a3, __a4, __a4, asl #1
	addeq	__a3, __ip, __a3
|L..84|
	ldr	__ip, [__v3, #0]
	mov	__a1, #0
	cmp	__lr, __ip
	bne	|L..78|
	ldr	__ip, [__v3, #12]
	cmp	__a4, __ip
	bne	|L..78|
	ldr	__ip, [__v3, #16]
	cmp	__a2, __ip
	bne	|L..78|
	ldr	__ip, [__v3, #36]
	cmp	__a3, __ip
	movne	__a1, #0
	moveq	__a1, #1
|L..78|
	cmp	__a1, #0
	subne	__a1, __v6, #3
	ldmneea	__fp, {__v1, __v2, __v3, __v4, __v5, __v6, __fp, __sp, __pc}
|L..70|
	ldr	__ip, [__v5, #36]
	add	__v6, __v6, #1
	cmp	__v6, __ip
	blt	|L..71|
|L..69|
	mvn	__a1, #0
	ldmea	__fp, {__v1, __v2, __v3, __v4, __v5, __v6, __fp, __sp, __pc}
	ALIGN
|LC..2|
	DCB &54, &6f, &20, &6c
	DCB &65, &73, &73, &20
	DCB &6f, &75, &74, &20
	DCB &73, &70, &61, &63
	DCB &65, &0a, &00
	ALIGN
|LC..3|
	DCB &62, &69, &74, &73
	DCB &74, &72, &65, &61
	DCB &6d, &20, &70, &72
	DCB &6f, &62, &6c, &65
	DCB &6d, &3a, &20, &72
	DCB &65, &73, &79, &6e
	DCB &63, &69, &6e, &67
	DCB &2e, &2e, &2e, &0a
	DCB &00
	ALIGN
|LC..4|
	DCB &6d, &70, &67, &6c
	DCB &69, &62, &3a, &20
	DCB &77, &6f, &72, &64
	DCB &70, &6f, &69, &6e
	DCB &74, &65, &72, &20
	DCB &74, &72, &61, &73
	DCB &68, &65, &64, &2e
	DCB &20, &20, &73, &69
	DCB &7a, &65, &3d, &25
	DCB &69, &20, &28, &25
	DCB &69, &29, &20, &20
	DCB &62, &79, &74, &65
	DCB &73, &3d, &25, &69
	DCB &20, &0a, &00
	ALIGN
|LC..5|
	DCB &69, &6e, &76, &61
	DCB &6c, &69, &64, &20
	DCB &6c, &61, &79, &65
	DCB &72, &20, &25, &64
	DCB &0a, &00
	ALIGN
|LC..6|
	DCB &66, &61, &74, &61
	DCB &6c, &20, &65, &72
	DCB &72, &6f, &72, &2e
	DCB &20, &20, &4d, &41
	DCB &58, &46, &52, &41
	DCB &4d, &45, &53, &49
	DCB &5a, &45, &20, &6e
	DCB &6f, &74, &20, &6c
	DCB &61, &72, &67, &65
	DCB &20, &65, &6e, &6f
	DCB &75, &67, &68, &2e
	DCB &0a, &00
	ALIGN
	EXPORT	|decodeMP3|
|decodeMP3|
	; args = 8, pretend = 0, frame = 8, alloca = 0
	; frame_needed = 1, anonymous_args = 0
	; nonlocal_label = 0, nonlocal_goto = 0
	mov	__ip, __sp
	stmfd	__sp!, {__v1, __v2, __v3, __v4, __v5, __v6, __fp, __ip, __lr, __pc}
	sub	__fp, __ip, #4
	cmp	__sp, __sl
	bllt	|__rt_stkovf_split_small|
	sub	__sp, __sp, #8
	ldr	__ip, [__fp, #4]
	mov	__v2, __a1
	str	__a4, [__sp, #4]
	cmp	__ip, #4608
	bge	|L..90|
	ldr	__ip, |L..149|
	ldr	__a2, |L..149|+4
	ldr	__a1, [__ip, #0]
	bl	|fprintf|
	mvn	__a1, #0
	ldmea	__fp, {__v1, __v2, __v3, __v4, __v5, __v6, __fp, __sp, __pc}
|L..90|
	cmp	__a2, #0
	beq	|L..91|
	mov	__a1, __v2
	bl	|addbuf|
	cmp	__a1, #0
	mvneq	__a1, #0
	ldmeqea	__fp, {__v1, __v2, __v3, __v4, __v5, __v6, __fp, __sp, __pc}
|L..91|
	ldr	__v1, [__v2, #16]
	cmp	__v1, #0
	bne	|L..93|
	ldr	__ip, [__v2, #52]
	cmn	__ip, #1
	bne	|L..94|
	mov	__a1, __v2
	mov	__a2, __v1
	bl	|sync_buffer|
	mov	__v3, __a1
	mov	__a1, #1
	ldr	__a3, [__v2, #36]
	add	__ip, __v3, #48
	cmp	__a3, __ip
	blt	|L..143|
	mov	__a1, __v2
	mov	__a2, __v3
	bl	|check_vbr_header|
	ldr	__ip, [__v2, #8]
	cmp	__ip, #0
	beq	|L..104|
	ldr	__ip, [__v2, #36]
	add	__v3, __v3, __a1
	cmp	__v3, __ip
	ble	|L..144|
|L..148|
	mov	__a1, #1
	ldmea	__fp, {__v1, __v2, __v3, __v4, __v5, __v6, __fp, __sp, __pc}
|L..102|
	mov	__a1, __v2
	bl	|read_buf_byte|
	add	__v1, __v1, #1
|L..144|
	cmp	__v1, __v3
	blt	|L..102|
	b	|L..148|
|L..94|
	mov	__a1, __v2
	mov	__a2, #1
	bl	|sync_buffer|
	mov	__v3, __a1
|L..104|
	cmp	__v3, #0
	blt	|L..148|
	ble	|L..106|
	ldr	__v1, |L..149|
	ldr	__a2, |L..149|+8
	ldr	__a1, [__v1, #0]
	bl	|fprintf|
	mov	__v6, #0
	str	__v6, [__v2, #32]
	ldr	__v4, |L..149|+12
	ldr	__v5, |L..149|+16
	ldr	__a3, [__v4, #0]
	ldr	__ip, [__v2, __v5]
	sub	__a3, __a3, #512
	add	__ip, __ip, __ip, asl #3
	mov	__ip, __ip, asl #8
	add	__ip, __ip, #148
	add	__ip, __v2, __ip
	rsb	__a3, __ip, __a3
	cmp	__a3, #1792
	ble	|L..107|
	str	__v3, [__sp, #0]
	ldr	__a2, |L..149|+20
	ldr	__a1, [__v1, #0]
	mov	__a4, #1792
	bl	|fprintf|
	ldr	__ip, [__v2, __v5]
	mov	__a3, __v6
	add	__ip, __ip, __ip, asl #3
	mov	__ip, __ip, asl #8
	add	__ip, __ip, #148
	add	__ip, __v2, __ip
	add	__ip, __ip, #512
	str	__ip, [__v4, #0]
|L..107|
	add	__ip, __a3, __v3
	sub	__v1, __ip, #1792
	cmp	__v1, #0
	ble	|L..109|
|L..111|
	sub	__v3, __v3, #1
	mov	__a1, __v2
	bl	|read_buf_byte|
	sub	__v1, __v1, #1
	cmp	__v1, #0
	bgt	|L..111|
|L..109|
	mov	__a1, __v2
	ldr	__a3, [__v4, #0]
	mov	__a2, __v3
	bl	|copy_mp|
	ldr	__ip, [__v2, #52]
	add	__ip, __ip, __v3
	str	__ip, [__v2, #52]
|L..106|
	mov	__a1, __v2
	bl	|read_head|
	ldr	__ip, |L..149|+24
	ldr	__a2, [__v2, __ip]
	add	__a1, __v2, #60
	bl	|decode_header|
	mov	__ip, #1
	str	__ip, [__v2, #16]
	ldr	__ip, [__v2, #128]
	ldr	__a3, [__v2, #72]
	str	__ip, [__v2, #40]
	cmp	__ip, #0
	movne	__ip, #0
	moveq	__ip, #1
	cmp	__a3, #0
	str	__ip, [__v2, #28]
	beq	|L..113|
	ldr	__ip, [__v2, #60]
	cmp	__ip, #1
	movne	__ip, #17
	moveq	__ip, #9
	b	|L..146|
|L..113|
	ldr	__ip, [__v2, #60]
	cmp	__ip, #1
	movne	__ip, #32
	moveq	__ip, #17
|L..146|
	str	__ip, [__v2, #44]
	ldr	__ip, [__v2, #88]
	cmp	__ip, #0
	ldrne	__ip, [__v2, #44]
	addne	__ip, __ip, #2
	strne	__ip, [__v2, #44]
|L..119|
	ldr	__a2, |L..149|+16
	ldr	__a3, [__v2, #52]
	ldr	__a4, |L..149|+28
	cmn	__a3, #1
	ldr	__ip, [__v2, __a2]
	mov	__a3, #0
	str	__a3, [__a4, #0]
	ldr	__a3, |L..149|+12
	rsb	__ip, __ip, #1
	str	__ip, [__v2, __a2]
	add	__ip, __ip, __ip, asl #3
	mov	__ip, __ip, asl #8
	add	__ip, __ip, #148
	add	__ip, __v2, __ip
	add	__ip, __ip, #512
	str	__ip, [__a3, #0]
	beq	|L..148|
|L..93|
	ldr	__a4, [__v2, #20]
	cmp	__a4, #0
	bne	|L..121|
	ldr	__ip, [__v2, #84]
	cmp	__ip, #3
	bne	|L..122|
	ldr	__ip, [__v2, #36]
	ldr	__a2, [__v2, #44]
	cmp	__ip, __a2
	blt	|L..148|
	ldr	__ip, |L..149|+12
	ldr	__a3, [__ip, #0]
	mov	__a1, __v2
	bl	|copy_mp|
	ldr	__ip, [__v2, #88]
	cmp	__ip, #0
	beq	|L..124|
	mov	__a1, #16
	bl	|getbits|
|L..124|
	add	__a1, __v2, #60
	bl	|do_layer3_sideinfo|
	cmp	__a1, #0
	movlt	__a1, #0
	add	__a1, __a1, #7
	cmp	__a1, #0
	addlt	__a1, __a1, #7
	mov	__a1, __a1, asr #3
	str	__a1, [__v2, #48]
	b	|L..126|
|L..122|
	ldr	__a3, [__v2, #128]
	ldr	__ip, [__v2, #36]
	cmp	__a3, __ip
	bgt	|L..148|
	str	__a3, [__v2, #48]
	str	__a4, [__v2, #44]
|L..126|
	mov	__ip, #1
	str	__ip, [__v2, #20]
|L..121|
	ldr	__v1, [__v2, #24]
	mov	__v4, #1
	cmp	__v1, #0
	bne	|L..128|
	ldr	__a2, [__v2, #48]
	ldr	__ip, [__v2, #36]
	cmp	__a2, __ip
	bgt	|L..148|
	ldr	__v3, |L..149|+12
	ldr	__a3, [__v3, #0]
	mov	__a1, __v2
	bl	|copy_mp|
	ldr	__a3, [__v2, #84]
	ldr	__ip, [__fp, #8]
	cmp	__a3, #2
	str	__v1, [__ip, #0]
	beq	|L..131|
	cmp	__a3, #3
	beq	|L..133|
	b	|L..134|
|L..131|
	ldr	__ip, [__v2, #88]
	cmp	__ip, #0
	beq	|L..132|
	mov	__a1, #16
	bl	|getbits|
|L..132|
	ldr	__a2, [__sp, #4]
	ldr	__a3, [__fp, #8]
	mov	__a1, __v2
	bl	|do_layer2|
	b	|L..130|
|L..133|
	ldr	__a2, [__sp, #4]
	ldr	__a3, [__fp, #8]
	mov	__a1, __v2
	bl	|do_layer3|
	b	|L..130|
|L..150|
	ALIGN
|L..149|
	DCD	|__stderr|
	DCD	|LC..2|
	DCD	|LC..3|
	DCD	|wordpointer|
	DCD	23200
	DCD	|LC..4|
	DCD	23196
	DCD	|bitindex|
|L..134|
	ldr	__ip, |L..151|
	ldr	__a2, |L..151|+4
	ldr	__a1, [__ip, #0]
	bl	|fprintf|
|L..130|
	ldr	__ip, |L..151|+8
	ldr	__a4, [__v2, #48]
	ldr	__ip, [__v2, __ip]
	mov	__a3, #1
	str	__a3, [__v2, #24]
	mov	__v4, #0
	ldr	__a3, [__v2, #44]
	add	__ip, __ip, __ip, asl #3
	mov	__ip, __ip, asl #8
	add	__ip, __ip, #148
	add	__ip, __v2, __ip
	add	__a3, __a3, #512
	add	__ip, __ip, __a3
	add	__ip, __ip, __a4
	str	__ip, [__v3, #0]
|L..128|
	ldr	__ip, [__v2, #28]
	cmp	__ip, #0
	beq	|L..136|
	ldr	__ip, [__v2, #32]
	cmp	__ip, #0
	ldrne	__ip, [__v2, #56]
	ldrne	__a3, [__v2, #100]
	addne	__ip, __ip, __a3
	strne	__ip, [__v2, #40]
	bne	|L..136|
|L..137|
	mov	__a1, __v2
	mov	__a2, #1
	bl	|sync_buffer|
	subs	__v3, __a1, #0
	bge	|L..139|
|L..147|
	mov	__a1, __v4
	ldmea	__fp, {__v1, __v2, __v3, __v4, __v5, __v6, __fp, __sp, __pc}
|L..139|
	ldr	__ip, [__v2, #44]
	ldr	__a3, [__v2, #48]
	ldr	__a4, [__v2, #100]
	add	__ip, __v3, __ip
	add	__ip, __ip, __a3
	str	__ip, [__v2, #40]
	rsb	__ip, __a4, __ip
	str	__ip, [__v2, #56]
|L..136|
	add	__a3, __v2, #44
	ldmia	__a3, {__a3, __ip}
	add	__ip, __a3, __ip
	ldr	__a3, [__v2, #40]
	ldr	__a4, [__v2, #36]
	rsb	__v3, __ip, __a3
	cmp	__v3, __a4
	bgt	|L..147|
	cmp	__v3, #0
	ble	|L..141|
	ldr	__v1, |L..151|+12
	mov	__a1, __v2
	ldr	__a3, [__v1, #0]
	mov	__a2, __v3
	bl	|copy_mp|
	ldr	__a3, [__v1, #0]
	ldr	__ip, |L..151|+8
	add	__a3, __a3, __v3
	str	__a3, [__v1, #0]
	ldr	__ip, [__v2, __ip]
	sub	__a3, __a3, #512
	add	__ip, __ip, __ip, asl #3
	mov	__ip, __ip, asl #8
	add	__ip, __ip, #148
	add	__ip, __v2, __ip
	rsb	__a3, __ip, __a3
	cmp	__a3, #1792
	ble	|L..141|
	ldr	__ip, |L..151|
	ldr	__a2, |L..151|+16
	ldr	__a1, [__ip, #0]
	bl	|fprintf|
|L..141|
	ldr	__ip, [__v2, #40]
	mov	__a3, #0
	str	__a3, [__v2, #40]
	str	__a3, [__v2, #16]
	str	__a3, [__v2, #20]
	str	__a3, [__v2, #24]
	str	__ip, [__v2, #52]
	ldr	__ip, [__v2, #28]
	mov	__a1, __v4
	str	__ip, [__v2, #32]
|L..143|
	ldmea	__fp, {__v1, __v2, __v3, __v4, __v5, __v6, __fp, __sp, __pc}
|L..152|
	ALIGN
|L..151|
	DCD	|__stderr|
	DCD	|LC..5|
	DCD	23200
	DCD	|wordpointer|
	DCD	|LC..6|
	END
